package com.ihg.hiex.entity.session.before.test;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.ihg.hiex.entity.session.Session;
import com.ihg.hiex.entity.user.Delegate;

/**
 * 前期工作任务
 *
 * @author Ark
 *
 */
@Entity
@Table(name = "pre_work_assignment")
public class PreWorkAssignment {
    
    @Id
    @GeneratedValue
    private Long id;
    
    /** 所属session */
    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    private Session session;
    
    /** 所属delegate */
    @ManyToOne(fetch = FetchType.LAZY, optional = true)
    private Delegate delegate;
    
    /** 状态 */
    @Enumerated(EnumType.STRING)
    private Status status;
    
    /** 所面临的五大问题 */
    @org.hibernate.annotations.Type(type="text")
    private String question1;
    
    @org.hibernate.annotations.Type(type="text")
    private String question2;
    
    @org.hibernate.annotations.Type(type="text")
    private String question3;
    
    @org.hibernate.annotations.Type(type="text")
    private String question4;
    
    @org.hibernate.annotations.Type(type="text")
    private String question5;
    
    /** 判断的依据 */
    @org.hibernate.annotations.Type(type="text")
    private String reason1;
    
    @org.hibernate.annotations.Type(type="text")
    private String reason2;
    
    @org.hibernate.annotations.Type(type="text")
    private String reason3;
    
    @org.hibernate.annotations.Type(type="text")
    private String reason4;
    
    @org.hibernate.annotations.Type(type="text")
    private String reason5;
    
    /** 解决方案 */
    @org.hibernate.annotations.Type(type="text")
    private String suggestion1;
    
    @org.hibernate.annotations.Type(type="text")
    private String suggestion2;
    
    @org.hibernate.annotations.Type(type="text")
    private String suggestion3;
    
    @org.hibernate.annotations.Type(type="text")
    private String suggestion4;
    
    @org.hibernate.annotations.Type(type="text")
    private String suggestion5;
    
    /** 提升收入的其他方法 */
    @org.hibernate.annotations.Type(type="text")
    private String otherSuggestion1;
    
    @org.hibernate.annotations.Type(type="text")
    private String otherSuggestion2;
    
    @org.hibernate.annotations.Type(type="text")
    private String otherSuggestion3;
    
    @org.hibernate.annotations.Type(type="text")
    private String otherSuggestion4;
    
    @org.hibernate.annotations.Type(type="text")
    private String otherSuggestion5;
    
    @Column(name = "is_disabled")
    private boolean disabled;
    
    /**
     * The default constructor 
     */
    public PreWorkAssignment() {
    }
    
    /**
     * 
     * @param session
     * @param delegate
     * @return
     */
    public PreWorkAssignment bind(Session session, Delegate delegate) {
        this.session = session;
        this.delegate = delegate;
        return this;
    }
    
    /**
     * @return
     */
    public PreWorkAssignment initialize() {
        this.disabled = false;
        this.status = Status.NOT_START;
        return this;
    }

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @return the session
     */
    public Session getSession() {
        return session;
    }

    /**
     * @return the delegate
     */
    public Delegate getDelegate() {
        return delegate;
    }

    /**
     * @return the status
     */
    public Status getStatus() {
        return status;
    }

    /**
     * @return the question1
     */
    public String getQuestion1() {
        return question1;
    }

    /**
     * @return the question2
     */
    public String getQuestion2() {
        return question2;
    }

    /**
     * @return the question3
     */
    public String getQuestion3() {
        return question3;
    }

    /**
     * @return the question4
     */
    public String getQuestion4() {
        return question4;
    }

    /**
     * @return the question5
     */
    public String getQuestion5() {
        return question5;
    }

    /**
     * @return the reason1
     */
    public String getReason1() {
        return reason1;
    }

    /**
     * @return the reason2
     */
    public String getReason2() {
        return reason2;
    }

    /**
     * @return the reason3
     */
    public String getReason3() {
        return reason3;
    }

    /**
     * @return the reason4
     */
    public String getReason4() {
        return reason4;
    }

    /**
     * @return the reason5
     */
    public String getReason5() {
        return reason5;
    }

    /**
     * @return the suggestion1
     */
    public String getSuggestion1() {
        return suggestion1;
    }

    /**
     * @return the suggestion2
     */
    public String getSuggestion2() {
        return suggestion2;
    }

    /**
     * @return the suggestion3
     */
    public String getSuggestion3() {
        return suggestion3;
    }

    /**
     * @return the suggestion4
     */
    public String getSuggestion4() {
        return suggestion4;
    }

    /**
     * @return the suggestion5
     */
    public String getSuggestion5() {
        return suggestion5;
    }

    /**
     * @return the otherSuggestion1
     */
    public String getOtherSuggestion1() {
        return otherSuggestion1;
    }

    /**
     * @return the otherSuggestion2
     */
    public String getOtherSuggestion2() {
        return otherSuggestion2;
    }

    /**
     * @return the otherSuggestion3
     */
    public String getOtherSuggestion3() {
        return otherSuggestion3;
    }

    /**
     * @return the otherSuggestion4
     */
    public String getOtherSuggestion4() {
        return otherSuggestion4;
    }

    /**
     * @return the otherSuggestion5
     */
    public String getOtherSuggestion5() {
        return otherSuggestion5;
    }

    /**
     * @return the disabled
     */
    public boolean isDisabled() {
        return disabled;
    }

    /**
     * @param id the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @param session the session to set
     */
    public void setSession(Session session) {
        this.session = session;
    }

    /**
     * @param delegate the delegate to set
     */
    public void setDelegate(Delegate delegate) {
        this.delegate = delegate;
    }

    /**
     * @param status the status to set
     */
    public void setStatus(Status status) {
        this.status = status;
    }

    /**
     * @param question1 the question1 to set
     */
    public void setQuestion1(String question1) {
        this.question1 = question1;
    }

    /**
     * @param question2 the question2 to set
     */
    public void setQuestion2(String question2) {
        this.question2 = question2;
    }

    /**
     * @param question3 the question3 to set
     */
    public void setQuestion3(String question3) {
        this.question3 = question3;
    }

    /**
     * @param question4 the question4 to set
     */
    public void setQuestion4(String question4) {
        this.question4 = question4;
    }

    /**
     * @param question5 the question5 to set
     */
    public void setQuestion5(String question5) {
        this.question5 = question5;
    }

    /**
     * @param reason1 the reason1 to set
     */
    public void setReason1(String reason1) {
        this.reason1 = reason1;
    }

    /**
     * @param reason2 the reason2 to set
     */
    public void setReason2(String reason2) {
        this.reason2 = reason2;
    }

    /**
     * @param reason3 the reason3 to set
     */
    public void setReason3(String reason3) {
        this.reason3 = reason3;
    }

    /**
     * @param reason4 the reason4 to set
     */
    public void setReason4(String reason4) {
        this.reason4 = reason4;
    }

    /**
     * @param reason5 the reason5 to set
     */
    public void setReason5(String reason5) {
        this.reason5 = reason5;
    }

    /**
     * @param suggestion1 the suggestion1 to set
     */
    public void setSuggestion1(String suggestion1) {
        this.suggestion1 = suggestion1;
    }

    /**
     * @param suggestion2 the suggestion2 to set
     */
    public void setSuggestion2(String suggestion2) {
        this.suggestion2 = suggestion2;
    }

    /**
     * @param suggestion3 the suggestion3 to set
     */
    public void setSuggestion3(String suggestion3) {
        this.suggestion3 = suggestion3;
    }

    /**
     * @param suggestion4 the suggestion4 to set
     */
    public void setSuggestion4(String suggestion4) {
        this.suggestion4 = suggestion4;
    }

    /**
     * @param suggestion5 the suggestion5 to set
     */
    public void setSuggestion5(String suggestion5) {
        this.suggestion5 = suggestion5;
    }

    /**
     * @param otherSuggestion1 the otherSuggestion1 to set
     */
    public void setOtherSuggestion1(String otherSuggestion1) {
        this.otherSuggestion1 = otherSuggestion1;
    }

    /**
     * @param otherSuggestion2 the otherSuggestion2 to set
     */
    public void setOtherSuggestion2(String otherSuggestion2) {
        this.otherSuggestion2 = otherSuggestion2;
    }

    /**
     * @param otherSuggestion3 the otherSuggestion3 to set
     */
    public void setOtherSuggestion3(String otherSuggestion3) {
        this.otherSuggestion3 = otherSuggestion3;
    }

    /**
     * @param otherSuggestion4 the otherSuggestion4 to set
     */
    public void setOtherSuggestion4(String otherSuggestion4) {
        this.otherSuggestion4 = otherSuggestion4;
    }

    /**
     * @param otherSuggestion5 the otherSuggestion5 to set
     */
    public void setOtherSuggestion5(String otherSuggestion5) {
        this.otherSuggestion5 = otherSuggestion5;
    }

    /**
     * @param disabled the disabled to set
     */
    public void setDisabled(boolean disabled) {
        this.disabled = disabled;
    }

}
